#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
构建可执行文件的脚本
使用PyInstaller将JPG转PNG脚本打包为exe文件
"""

import os
import subprocess
import sys

def install_pyinstaller():
    """安装PyInstaller"""
    try:
        import PyInstaller
        print("PyInstaller已安装")
    except ImportError:
        print("正在安装PyInstaller...")
        subprocess.check_call([sys.executable, "-m", "pip", "install", "pyinstaller"])
        print("PyInstaller安装完成")

def build_exe():
    """构建exe文件"""
    print("开始构建可执行文件...")
    
    # PyInstaller命令参数
    cmd = [
        "pyinstaller",
        "--onefile",  # 打包为单个exe文件
        "--windowed",  # 不显示控制台窗口（可选，如果不需要控制台输出可以启用）
        "--name=JPG转PNG工具",  # 设置exe文件名
        "--icon=icon.ico",  # 图标文件（如果有的话）
        "文件内jpg2png.py"
    ]
    
    # 如果没有图标文件，移除图标参数
    if not os.path.exists("icon.ico"):
        cmd.remove("--icon=icon.ico")
    
    # 执行构建命令
    try:
        subprocess.check_call(cmd)
        print("构建完成！")
        print("可执行文件位置: dist/JPG转PNG工具.exe")
    except subprocess.CalledProcessError as e:
        print(f"构建失败: {e}")
        return False
    
    return True

def main():
    """主函数"""
    print("JPG转PNG工具 - 可执行文件构建器")
    print("=" * 40)
    
    # 检查源文件是否存在
    if not os.path.exists("文件内jpg2png.py"):
        print("错误: 找不到源文件 '文件内jpg2png.py'")
        return
    
    # 安装PyInstaller
    install_pyinstaller()
    
    # 构建exe文件
    if build_exe():
        print("\n构建成功！")
        print("使用方法:")
        print("1. 将 'dist/JPG转PNG工具.exe' 复制到包含JPG图片的文件夹")
        print("2. 双击运行exe文件")
        print("3. 程序会自动转换该文件夹下的所有JPG图片为PNG格式")
    else:
        print("\n构建失败，请检查错误信息")

if __name__ == "__main__":
    main() 